#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<QDebug>
#include<fstream>
#include<iostream>
#include<QShortcut>
#include<QFormLayout>
#include<QButtonGroup>
#include<QLineEdit>
#include<QTimer>
#include<windows.h>
#include<QPushButton>
#include<QToolTip>
#include<QDockWidget>
#include<QDialog>
#include<QPushButton>
#include<QStatusBar>
#include<QToolBar>
#include<QPair>
#include<QAudioOutput>
#include<QCursor>
#include<QHash>
#include<QVector>
#include<QPair>
#include<QMap>
#include<QMediaPlayer>
#include<QMessageBox>
#include<QColorDialog>
#include<QFileDialog>
#include<QFontDialog>
#include<QTimer>
#include<QInputDialog>
#include<QFile>
#include<QFileDevice>
#include<QWaitCondition>
#include<Qpainter>
#include<QPaintEvent>
#include<QListWidgetItem>
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    int my_duration;
    int my_position;
    QMediaPlayer* mp;
    QHash<QString,QString> hash_picture;
    QUrl getUrlfromItem(QListWidgetItem* item);
    bool loop=false;
    bool manual_set=false;
public:
    void do_sourceChange(const QUrl& media);
    void do_durationChange(qint64 duration);
    void do_positionChange(qint64 positon);
    void do_stateChange(QMediaPlayer::PlaybackState state); //播放状态发生改变
public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_pushButton_start_clicked();

    void on_pushButton_pause_clicked();

    void on_pushButton_initial_clicked();

    void on_pushButton_front_clicked();

    void on_pushButton_next_clicked();

    void on_pushButton_add_clicked();

    void on_pushButton_reduce_clicked();

    void on_pushButton_clear_clicked();

    void on_comboBox_currentIndexChanged(int index);

    void on_listWidget_itemDoubleClicked(QListWidgetItem *item);

    void on_horizontalSlider_valueChanged(int value);


    void on_horizontalSlider_2_sliderMoved(int position);

    void on_pushButton_9_clicked();

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
